#pragma once

struct FSMCartridge
{
	//attributes
	int m_selfId;
	int m_swapId;
	char* m_name;
	bool m_completed;
	bool m_loaded;
	bool m_renew;

	//ctor & dtor
	FSMCartridge() : m_selfId(-1), m_swapId(-1), m_name("NULL"),
		m_completed(false), m_loaded(false), m_renew(true){}
	~FSMCartridge(){release();}

	//main functions
	virtual void init(){}
	virtual void release(){}
	virtual void input(){}
	virtual void update(){}
	virtual void draw(){}
	virtual void preLoop(){}
	virtual void postLoop(){}

	//getter functions
	bool completed(){return m_completed;}
	bool loaded(){return m_loaded;}
	bool renew(){return m_renew;}
};